// License Notification
//======================================================
// Copyright (c) 2010 Channel Intelligence Inc.
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// ======================================================


using System.Collections.Generic;

namespace CIP4.Common
{
    public interface IDataPacketType
    {
        IRulesEngineOperationsType Operations { get; set; }
        IPacketStatsType PacketStats { get; set; }
        Dictionary<string, object> Parameters { get; }
        GetValueDelegate GetValue { get; set; }
        SetValueDelegate SetValue { get; set; }
        LoggerDelegate Logger { get; set; }
        object GetNamedValue(string name);
        void Bind(string rootName, object value);
        void Reset();
    }

    public delegate object GetValueDelegate(string valueData, IDataPacketType data);

    public delegate void SetValueDelegate(string valueData, string value, IDataPacketType data);

}
